ارتباط به منابع داده در ADO.NET ( بخش اول )
دهلران پی سی
سایت جامع علمی ,آموزشی,فرهنگی و تفریحی

بمنظوراتصال به يک منبع داده ، می بايست در ابتدا يک Net Data Provider . ، انتخاب گردد . Data Provider ، کلاس های لازم بمنظور اتصال  به يک منبع داده ، خواندن اطلاعات ، ويرايش ، بهنگام سازی و انجام عمليات متفاوت بر روی داده ها  را ارائه می نمايد . در اين مقاله به تشريح انواع  Data Provider  پرداخته و با نحوه انتخاب مناسب آنان بمنظور استفاده در برنامه ها ، آشنا خواهيم شد .

NET Data Provider .  چيست؟
NET Data Provider .، يک Component  کليدی  ارائه شده بهمراه معماری ADO.NET بوده که امکان ارتباط بين يک منبع داده و يک Component ، يک سرويس وب XML و يا يک برنامه را فراهم می نمايد. يک NET Data Provider
.، امکان اتصال به  منبع داده ، بازيابی داده ها ،  انجام عمليات بر روی داده ها  و بهنگام سازی منبع داده را فراهم می نمايد. بهمراه  فريمورک دات نت ، Provider  های زير ارائه شده است :

  • SQL Server .NET Data Provider

  • OLE DB .NET Data Provider

در آينده برای ساير منابع داده ،  NET Data Provider  .  مربوطه ايجاد  و در دسترس عموم برنامه نويسان قرار خواهد گرفت. هر  Provider  ،  مسئوليت پياده سازی کلاس های  عمومی  ADO.NET  را برعهده  خواهد داشت . دستاورد  رويکرد فوق ، ارتباط با منابع داده متفاوت با استفاده از يک روش يکسان از طريق محيط های برنامه نويسی خواهد بود .

کلاس های NET Data Provider  .
ADO.NET ، از NET Data Provider . ،  بمنظور ارتباط به منبع داده ، بازيابی ، عمليات برروی داده ها و بهنگام سازی منبع داده استفاده می نمايد . هر Provider ، بگونه ای طراحی می گردد  که دارای حجم اندکی بوده و يک لايه حداقل بين کد های نوشته شده و منبع داده را ايجاد نمايند . ( افزايش کارائی بدون قربانی نمودن پتانسيل ها !)

فريمورک دات نت ، دارای دو Data Provider است :

  • SQL Server .NET . امکان دستيابی بهينه به SQL Server 2000 و بانک های اطلاعاتی SQL Server 7.0 را فراهم می نمايد. بدين منظور می بايست  از namespace با نام System.Data.Sqlclient بهمراه برنامه ها، استفاده گردد . Provider فوق،  نسبت به  OLE DB .NET Data Provider ، دارای کارآئی  بمراتب بيشتری است (برای ارتباط با  منبع داده از لايه های  اضافه ديگر نظير: OLE  DB و يا  ODBC استفاده  نمی گردد ).

  • OLE DB .NET . امکان  دستيابی به SQL Server 6.5  و يا نسخه های قبل از آن ، بانک های اطلاعاتی نظير اوراکل ، Sybase ، DB2/400 و اکسس ماکروسافت را فراهم می نمايد . بمنظور استفاده از Provider فوق ، می بايست از namespace با نام System.Data.OleDb  بهمراه برنامه ها ، استفاده گردد .

علاوه بر موارد فوق ، ماکروسافت در صدد ارائه يک ODBC .NET Data Provider برای دستيابی به ساير منابع داده است .
ADO.NET ، از يک مدل شی گراء در رابطه با NET Data Providers  . استفاده می نمايد . در SQL Server .NET Data Provider ، اسامی کلاس ها با پيشوند Sql آغاز می گردد . مثلا" کلاس Connection  ،  SqlConnection  ناميده می شود. در OLE DB .NET Data Provider ، اسامی کلاس ها با  پيشوند OleDb ، آغاز می گردد . مثلا" کلاس Connection  دارای  نام OleDbConnection
، می باشد. چهار کلاس اساسی زير، سهم عمده ای در شکل دهی يک NET Data Provider  . را برعهده دارند .

  • XxxConnection . کلاس فوق ، بمنظور ايجاد يک Connection به يک منبع داده خاص استفاده می گردد . مثلا" کلاس SqlConnection ، باعث اتصال به منابع داده SQL Server ، می گردد .

  • XxxCommand . کلاس فوق ، بمنظور اجرای يک دستور از طريق يک منبع داده ، استفاده می گردد . مثلا" کلاس SqlCommand ، امکان اجرای Stored Procedure و عبارات SQL در رابطه با يک منبع داده SQL Server ، را فراهم می نمايد .

  • XxxDataReader . از کلاس فوق ، بمنظور خواندن اطلاعات از يک منبع داده بصورت فقط خواندنی و Forward-only ، استفاده می گردد . مثلا" کلاس SqlDataReader ، امکان  خواندن سطرهائی از جداول در رابطه با يک منبع داده SQL Server  را فراهم می نمايد . کلاس فوق، بعنوان خروجی متد ExecuteReader از کلاس XxxCommand ، برگردانده می شود. ( اغلب بعنوان ماحصل اجرای يک عبارت SELECT SQL )

  • XxxDataAdapter . کلاس فوق ، از اشياء XxxCommand استفاده  تا يک DataSet را حاوی داده های مورد نظر نمايد. در اين راستا ، امکان بهنگام سازی اطلاعات نيز فراهم می گردد . مثلا" کلاس SqlDataAdapter  ، امکان  مديريت ارتباط بين يک Dataset و داده های ذيربط  در يک منبع داده SQL Server را فراهم می نمايد.

نحوه انتخاب يک Data Provider
انتخاب يک
NET Data Provider .  مناسب برای يک برنامه،  بستگی به نوع منبع داده ئی دارد که  قصد ارتباط با آن وجود دارد. 

نحوه مراجعه به يک NET Data Provider 
با استفاده از Solution Explorer در ويژوال استوديو دات نت ، می توان مديريت مراجعات به اسمبلی هائی که مسئوليت  NET Data Provider .  را بر عهده دارند ، انجام داد . اسمبلی  System.Data.dll ( بصورت فيزيکی يک فايل DLL است ) مسئوليت پياده سازی SQL Server .NET Data Provider و OLE DB .NET Data Provider را از طريق Namespace های System.Data.SqlClient و System.Data.OleDb ، بر عهده داشته و  اسمبلی System.Data.Odbc.dll چنين رسالتی را در رابطه  با  ODBC  .NET Data Provider ، انجام خواهد داد . اسمبلی فوق ،  در زمان نصب ويژوال استوديو دات نت ، نصب نخواهد شد . برای دريافت اسمبلی فوق ، می توان از طريق آدرس : http://msdn.microsoft.com/download  ، اقدام و پس از کليک نمودن بر روی NET Framework .، گزينه ODBC .NET Data Provider را انتخاب کرد . بدين ترتيب،  زمينه دريافت فايل فوق فراهم می گردد . پس از دريافت اسمبلی  فوق ، می توان بصورت دستی (Manaually) در يک پروژه به آن مراجعه و از ODBC .NET Data Provider
فوق ، استفاده کرد .

SQL Server .NET Data Provider
Provider فوق ، لايه ای نازک بين يک برنامه و SQL Server ايجاد می نمايد. با توجه به اينکه اين Provider ، از پروتکل اختصاصی خود ( TDS: Tabular Data Stream ) بمنظور ارتباط با يک سرويس دهنده SQL استفاده می نمايد ، حجم آن اندک و دستيابی به سرويس دهنده SQL
مستقيما" و بدون استفاده از لايه های اضافه ديگر ، انجام می گيرد . بدين ترتيب کارائی و قابليت توسعه سيستم ، بهبود پيدا خواهد کرد .

OLE DB .NET Data Provider
Provider فوق ، بمنظور اتصال به يک منبع داده  از OLE  DB و COM بصورت ذاتی استفاده می نمايد . بنابراين می بايست از يک OLE  DB Provider استفاده گردد که خود  از OLE DB .NET Data Provider استفاده می نمايد . بمنظور استفاده از OLE DB .NET Data Provider ، می بايست نوع Provider بصورت يک رشته ، مشخص گردد . واژه Provider در رشته فوق بيانگر نوع OLE DB منبع داده ئی است که به آن متصل می گرديم .
مثلا"
"Provider = MSDAORA" ، شما را به يک بانک اطلاعاتی اوراکل متصل می نمايد . در زمانيکه از SQL Server .NET Data Provider ، استفاده می شود ، نيازی به استفاده از واژه Provider نخواهد بود ( فرض می شود که SQL Server 7.0
و يا قبل از آن باشد) . جدول زير نمونه هائی در اين زمينه را نشان می دهد :

مثال

منبع داده

Provider = SQLOLEDB;Data Source = Tehran ;Initial
Catalog = pubs;User  ID = sa ; Password = 999;

SQL Server 6.5

Provider = MSDAORA ; Data Source = ORACLE817 ; User
ID = OLEDB ; Password = OLEDB ;

Oracle server

Provider = Microsoft.Jet.OLEDB.4.0;
Data Source = C:MydbFirstdb.mdb ;
 

Microsoft Access database

ODBC .NET Data Provider
Provider فوق ،  بمنظور اتصال به يک منبع داده از توابع API مربوط به ODBC بصورت ذاتی  استفاده می نمايد. اين Provider ، بصورت يک اسمبلی مجزاء و با نام System.Data.Odbc.dll
، پياده سازی شده و بصورت پيش فرض در تمپليت های پروژه در ويژوال استوديو دات نت ، انتخاب نشده و می بايست بصورت دستی به آن مراجعه  گردد .

مثال

Provider/Driver

منبع داده

Driver ={Microsoft ODBC for Oracle };
Server = ORACLE817;UID=OLEDB;
PWD  = OLEDB;
ORA  ODBC

Oracle Server

Driver = {Microsoft Access Driver (*.mdb)};
DBQ = C:MydbFirstdb.mdb ;
Jet ODBC

Microsoft Access database

خلاصه
برای انتخاب يک
 NET Data Provider . ، موارد زير پيشنهاد می گردد :

  • اگر منبع داده از نوع SQL Server 7.0 و يا SQL Sever 2000  می باشد ،  SQL Server .NET Data Provider انتخاب گردد .
  • اگر منبع داده از نوع SQL Server 6.5 و قبل از آن  باشد ، OLE DB .NET Data Provider انتخاب گردد .
  • اگر منبع داده شامل هر نوع منبع داده نامتجانس باشد که امکان دستيابی به آن از طريق OLE DB Provider ، وجود داشته باشد ،
    از
    OLE DB .NET Data Provider
    استفاده  گردد .

  • اگر منبع داده شامل هر نوع منبع داده نامتجانس باشد که امکان دستيابی به آن از طريق ODBC driver ، وجود داشته باشد ،
     از
    ODBC  .NET Data Provider
    استفاده  گردد .

در بخش دوم اين مقاله به بررسی نحوه تعريف يک Connection  خواهيم پرداخت .


نظرات شما عزیزان:

نام :
آدرس ایمیل:
وب سایت/بلاگ :
متن پیام:
:) :( ;) :D
;)) :X :? :P
:* =(( :O };-
:B /:) =DD :S
-) :-(( :-| :-))
نظر خصوصی

 کد را وارد نمایید:

 

 

 

عکس شما

آپلود عکس دلخواه:








ارسال توسط هادی احمدی

آرشیو مطالب
پيوند هاي روزانه
امکانات جانبی

آمار وب سایت:  

بازدید امروز : 61
بازدید دیروز : 1
بازدید هفته : 61
بازدید ماه : 646
بازدید کل : 162589
تعداد مطالب : 736
تعداد نظرات : 23
تعداد آنلاین : 1

Google

در اين وبلاگ
در كل اينترنت
 <-PostTitle-> <-PostContent-> 1 <-PostLink->